const db = wx.cloud.database(); // 获取数据库实例

Page({
  data: {
    messages: [], // 聊天记录
    inputValue: '', // 输入框内容
    stdId: '', // 当前用户stdId
    scrollToMessage: '' ,// 滚动到的消息ID
    receiver:''
  },

  onLoad() {
    this.initUserData();
    this.loadMessages();
  },

  // 初始化用户数据（获取当前用户stdId）
  async initUserData() {
    try {
      // 假设用户已登录，从全局数据或缓存中获取stdId
      const app = getApp();
      this.setData({ stdId: app.globalData.stdId });

      if (!this.data.stdId) {
        wx.showToast({
          title: '请先登录',
          icon: 'none'
        });
        setTimeout(() => {
          wx.navigateTo({ url: '/pages/login/index' }); // 跳转到登录页
        }, 1500);
      }
    } catch (error) {
      console.error('获取用户信息失败', error);
    }
  },

  // 加载历史聊天记录
  async loadMessages() {
    try {
      const messagesRes = await db.collection('messages')
        .where({
          // 查询当前用户的聊天记录（可根据实际情况调整，如按聊天对象过滤）
          receiver: this.data.receiver,
          sender: this.data.stdId,
        })
        .orderBy('createdAt', 'asc') // 按时间升序排列
        .get();

      this.setData({ messages: messagesRes.data });
      this.scrollToBottom(); // 加载完成后滚动到底部
    } catch (error) {
      console.error('加载聊天记录失败', error);
    }
  },

  // 输入框内容变化
  onInputChange(e) {
    this.setData({ inputValue: e.detail.value });
  },

  // 发送消息
  async sendMessage() {
    const { inputValue, stdId } = this.data;
    if (!inputValue.trim()) {
      wx.showToast({ title: '消息不能为空', icon: 'none' });
      return;
    }

    try {
      // 1. 添加消息到云数据库
      const receiver1 = this.data.receiver
      await db.collection('messages').add({
        data: {
          content: inputValue,
          sender: stdId, // 发送者stdId
          createdAt: db.serverDate(), // 使用服务器时间
          receiver:receiver1
        }
      });

      // 2. 清空输入框
      this.setData({ inputValue: '' });
      
      // 3. 重新加载聊天记录（或局部更新，此处为简化逻辑）
      this.loadMessages();
    } catch (error) {
      console.error('发送消息失败', error);
      wx.showToast({ title: '发送失败，请重试', icon: 'none' });
    }
  },

  // 滚动到底部
  scrollToBottom() {
    const { messages } = this.data;
    if (messages.length > 0) {
      this.setData({ scrollToMessage: `msg-${messages.length - 1}` });
    }
  },

  // 监听页面显示（用于实时更新聊天记录）
  onShow() {
    this.loadMessages();
  },
  onLoad: function(options) {
    // console.log('接收到的参数options:', options);
    this.setData({
     receiver:options.stdId
    })
    // console.log(options.stdId)
  },
});